package Thread;

import Composite.RacinePicasial;
import Composite.RacineLogique;
import Composite.Element;
import Composite.RacineDossier;
import Visitables.*;
import fichiers.*;
import java.util.*;

public class ThreadMiseAJourAlways extends Thread {

    private GestionnaireDeDossier gestionnaire;

    public ThreadMiseAJourAlways(GestionnaireDeDossier g) {

        this.gestionnaire = g;
        this.setPriority(Thread.MIN_PRIORITY);

    }

    public void run() {

        while (true) {
            try {

                Thread.sleep(20000);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }

            ArrayList temp = new ArrayList(this.gestionnaire.getFichiersAlways());
            Iterator it = temp.iterator();

            try {
                while (it.hasNext()) {
                    Element e = (Element) it.next();
                     Element d = RacinePicasial.getRacine().getElement(e.getFichierCourant().getAbsolutePath());

                     Element dP=RacineDossier.getRacine().getElement(e.getFichierCourant().getAbsolutePath());
                     Visiteur_MiseAJourAjouterDossierSeulement visaP = new Visiteur_MiseAJourAjouterDossierSeulement();
                     dP.accept(visaP);
                     Visiteur_MiseAJourSupprimerDossierSeulement visP = new Visiteur_MiseAJourSupprimerDossierSeulement();
                     dP.accept(visP);
                    
                    Visiteur_MiseAJourSupprimer vis = new Visiteur_MiseAJourSupprimer();
                    d.accept(vis);
                    Visiteur_MiseAJourAjouter visa = new Visiteur_MiseAJourAjouter();
                    d.accept(visa);
                }
                
                    Visiteur_MiseAJourSupprimerPhotoSeulement viss= new Visiteur_MiseAJourSupprimerPhotoSeulement();
                    RacineLogique.getRacine().accept(viss);
                
            } catch (NullPointerException er) {
            }




        }
    }
}
